<?php
class FuncionarioController extends BaseController{

    public function indexAction(){
    	$this->view->linkManual = "/bntmercosul/public/manual/manual_consulta_funcionario.html";
		$authNamespace = new Zend_Session_Namespace('Zend_Auth');
		$filter = new Zend_Filter_StripTags();
       	$ds_nome = "";
		$ds_cpf	= "";
		$order = "1";
       	$asc = 0;
        $this->view->title = "Consulta funcionario";
        $this->view->action = $this->view->baseUrl . '/funcionario/index';
		$this->view->parametrosConsulta = $this->view->baseUrl . "/funcionario/index";

		if ((strtolower($_SERVER['REQUEST_METHOD']) == 'post') ||
		    ((int)$this->_getParam("order"))){

        	if (strtolower($_SERVER['REQUEST_METHOD']) == 'post'){
        		$ds_nome = trim($filter->filter($this->_request->getPost('ds_nome')));
        		$ds_cpf = trim($filter->filter($this->_request->getPost('ds_cpf')));

       		}
       		else {
        		$ds_nome = trim($filter->filter($this->_getParam('ds_nome')));
        		$ds_cpf = trim($filter->filter($this->_getParam('ds_cpf')));

       		 	$order = (int)$this->_getParam('order');
       	 		$asc = trim($filter->filter($this->_getParam('asc')));
       		}

        	$funcionario = new Funcionario();
			$this->view->dadosConsulta = $funcionario->buscar($ds_nome, $ds_cpf, null, null, null, null, $order, $asc);
			$this->view->ds_nome=$ds_nome;
			$this->view->ds_cpf=$ds_cpf;

			if ($ds_nome != "")
    	    	$this->adicionaParametros("ds_nome",$ds_nome);
        	if ($ds_cpf)
        		$this->adicionaParametros("ds_cpf", $ds_cpf);
        	$this->view->ordemAtual=$order;
			$this->view->asc=$asc;
			$this->view->parametrosConsulta .= $this->parametrosConsulta;
		} else {
			$this->view->ds_nome=null;
			$this->view->ds_cpf=null;
		}
		$this->render();
    }
    
    private function popularFuncionario($funcionario, $post){
    		$filter = new Zend_Filter_StripTags();
        	$funcionario->id_funcionario = null;
        	$funcionario->id_juridica = '3';
        	$funcionario->ds_nome = trim($filter->filter($this->_request->getPost('ds_nome')));
        	$funcionario->ds_nome_credencial = trim($filter->filter($this->_request->getPost('ds_nome_credencial')));
        	$funcionario->ds_cpf 			 = trim($filter->filter($this->_request->getPost('ds_cpf')));
        	$funcionario->ds_rg 		     = trim($filter->filter($this->_request->getPost('ds_rg')));
        	$funcionario->id_sexo 			 =(int) $this->_request->getPost('sexo');
        	$funcionario->id_civil 			 =(int) $this->_request->getPost('estado_civil');
        	$funcionario->nr_telefone		 = $this->_request->getPost('nr_telefone');
        	$funcionario->nr_celular 		 = $this->_request->getPost('nr_celular');
        	$funcionario->ds_email 			 = $this->_request->getPost('ds_email');
        	$funcionario->id_cidade ="1";//   $this->_request->getPost('id_cidade');
        	$funcionario->ds_cep 			= $this->_request->getPost('ds_cep');
        	$funcionario->ds_endereco 		= $this->_request->getPost('ds_endereco');
        	$funcionario->nr_endereco 		= $this->_request->getPost('nr_endereco');
        	$funcionario->ds_bairro 		= $this->_request->getPost('ds_bairro');
        	$funcionario->ds_complemento 	= $this->_request->getPost('ds_complemento');
        	$funcionario->dt_contratacao 	= UtilController::brDateUsDate($this->_request->getPost('dt_contratacao'));
        	$funcionario->ds_cargo 			= $this->_request->getPost('ds_cargo');
        	/*$funcionario->id_usuario 		= $authNamespace->id_usuario;*/

        	return $funcionario;
    	}
    
	function addAction() {
		$this->view->linkManual = "/bntmercosul/public/manual/manual_cadastro_funcionario.html";
		$authNamespace = new Zend_Session_Namespace('Zend_Auth');
        $this->view->title = "Novo Funcionario";
        $this->view->funcionario = new stdClass();
        $funcionario = new Funcionario();
             
        $obj=$this->popularFuncionario($funcionario, $this->_request->getPost());
        
        if (strtolower($_SERVER['REQUEST_METHOD']) == 'post'){
        	
        	$funcionario->salvar();

        	$operacao = "Novo Funcionario";
        	$mensagem = "Funcionario cadastrado com sucesso!";
        	$links = array(array('link'=>$this->view->baseUrl ."/funcionario/add" , 'descricao'=>"Cadastrar Funcionario"),
        	                           array('link'=>$this->view->baseUrl ."/funcionario" , 'descricao'=>"Listar Funcionario"));
        	$this->_forward('status', 'util', null,
                            array('operacao'=>$operacao,
                           		  'mensagem'=>$mensagem,
                                  'links'=>$links));
        	return;
        }
        else{
        	$authNamespace = new Zend_Session_Namespace('Zend_Auth');

			$this->view->action = 'add';
			$this->render();
        }
	}

	function editAction(){
		$this->view->linkManual = "/bntmercosul/public/manual/manual_editar_funcionario.html";
		$authNamespace = new Zend_Session_Namespace('Zend_Auth');
		$this->view->title = "Alterar Funcionario";
		$id = (int)$this->_request->getParam('id', 0);
		$funcionario = new Funcionario();
		if (strtolower($_SERVER['REQUEST_METHOD']) == 'post'){
			$filter = new Zend_Filter_StripTags();
			$id = (int)$this->_request->getPost('id_funcionario');
			echo $id;
			$funcionario->load($id);
        	
			$funcionario = new Funcionario();
             
        	$obj=$this->popularFuncionario($funcionario, $this->_request->getPost());
        	
        	$funcionario->salvar();
        	$operacao = "Alterar funcionario";
        	$mensagem = "Funcionario alterado com sucesso!";
        	$links = array(array('link'=>$this->view->baseUrl ."/funcionario/add" , 'descricao'=>"Cadastrar funcionario"),
        	               array('link'=>$this->view->baseUrl ."/funcionario" , 'descricao'=>"Listar funcionarios"));

        	$this->_forward('status', 'util', null,
                             array('operacao'=>$operacao,
                             'mensagem'=>$mensagem,
                             'links'=>$links));
		}
		else {
			$funcionario->load($id);
			$this->view->funcionario = $funcionario;
			$this->view->action = 'edit';
			$this->view->buttonText = 'Salvar';
			$this->render();
		}
	}

	function excluirAction(){
		$this->view->linkManual = "/bntmercosul/public/manual/manual_excluir_funcionario.html";
		$id = (int)$this->_getParam('id');
		if ($id > 0){
			$funcionario = new Funcionario();
			$funcionario->excluir($id);
			$operacao = "Excluir funcionario";
        	$mensagem = "Funcionario excluido com sucesso!";
        	$this->carregaTelaStatus("Excluir Funcionário", "Funcionário excluído com sucesso!");
            return;
		}
		$this->render();
	}
	
	private function carregaTelaStatus($operacao, $mensagem){
		$links = array( array('link'=>$this->view->baseUrl ."/funcionario/add" , 'descricao'=>"Cadastrar outro funcionário"),
                        array('link'=>$this->view->baseUrl ."/funcionario",'descricao'=>"Listar funcionário"));
        $this->_forward('status', 'util', null,
                       	array(	'operacao'=>$operacao,
                  		  		'mensagem'=>$mensagem,
                          		'links'   =>$links));
        return;			
	} 
}